#include "PajaritoAzul.h"

using namespace TP::Juego::Arena::Actores;

PajaritoAzul::PajaritoAzul() : Pajarito(PAJARITOAZUL) {
    this->setVida(vida_pajaro_azul);
    setAlturaRebote(rebote_pajaro_azul);
}

PajaritoAzul::PajaritoAzul(const string& pNombre) : Pajarito(pNombre) {
    this->setVida(vida_pajaro_azul);
    setAlturaRebote(rebote_pajaro_azul);
}

PajaritoAzul::~PajaritoAzul() {
}

double PajaritoAzul::getPoderAtaqueContraCerdito (){
    return danio_pajaro_azul_cerdito;
}

double PajaritoAzul::getPoderAtaqueContraSuperficie (){
    return danio_pajaro_azul_superficies;
}

int PajaritoAzul::getPuntaje() {
    return puntaje_pajaro_azul;
}

TiXmlElement* PajaritoAzul::aElementoXML (){
    
    TiXmlElement * element = new TiXmlElement(PAJARITOAZUL);

    element->SetAttribute("nombre", this->Nombre().c_str());
    element->SetDoubleAttribute("vida", this->getVida());
    element->SetDoubleAttribute("alturaRebote", this->_alturaRebote);
    element->LinkEndChild(this->getTrayectoria()->aElementoXML());
    
    return element;
}

void PajaritoAzul::deElementoXML (TiXmlElement* pElemento){
    double tmp;
    if (strcmp (pElemento->Value(), PAJARITOAZUL) == 0)
    {
        this->setNombre(pElemento->Attribute("nombre"));
        pElemento->Attribute("vida", &tmp);
        this->setVida(tmp);
        pElemento->Attribute("alturaRebote", &_alturaRebote);
        Trayectoria* trayectoria = new Trayectoria ();
        trayectoria->deElementoXML (pElemento->FirstChildElement());
        this->setTrayectoria(trayectoria);
    }
}

double PajaritoAzul::getRadio() {
    return radio_pajaro_azul;
}

int PajaritoAzul::getPuntos() {
    return puntaje_pajaro_azul;
}